package com.qzsoft.system.modules.sys.notice.dto;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.qzsoft.jeemis.common.annotation.Dict;
import com.qzsoft.jeemis.common.validator.group.DefaultGroup;
import com.qzsoft.jeemis.common.validator.group.UpdateGroup;
import com.qzsoft.system.modules.sys.notice.entity.SysNoticeFileEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 通知公告(SysNotice)表实体类
 *
 * @author sdmq
 * @since 2019-09-17 21:05:18
 */
@ApiModel(value = "通知公告")
@Data
@EqualsAndHashCode(callSuper = false)
public class SysNoticeDto extends Model<SysNoticeDto> {
	private static final long serialVersionUID = -25723839900015523L;
	/**
	 *主键UUID主键
	 */
	@ApiModelProperty(value = "主键UUID")
	private String id;
	/**
	 *通知标题
	 */
	@ApiModelProperty(value = "通知标题")
	private String title;
	/**
	 *通知公告内容  (超文本编辑器)
	 */
	@ApiModelProperty(value = "通知公告内容(超文本编辑器)")
	private String content;
	/**
	 *codeid  (dx) 工作通知  政策法规   单位改革类
	 */
	@ApiModelProperty(value = "dy 一级栏目")
	private String noticeType1;

	@ApiModelProperty(value = "dx 二级栏目")
	private String noticeType2;

	/**
	 *发文机构
	 */
	@ApiModelProperty(value = "发文机构")
	private String deptName;
	/**
	 *通告范围 1 全员 2 所有下级单位  3直属单位
	 */
	@ApiModelProperty(value = "1 全员 2 所有下级单位  3直属单位")
	private String noticeScope;

	/**
	 * 发布状态
	 *0 未发布  1 发布
	 */
	@ApiModelProperty(value = "0 未发布  1 发布")
	private Boolean hasPublish;
	/**
	 *发布时间
	 */
	@ApiModelProperty(value = "发布时间")
	private Date publishDate;

	/**
	 *排序,置顶通过排序号实现,如果排序号前10为置顶,置顶排序号和时间排序
	 */
	@ApiModelProperty(value = "排序,置顶通过排序号实现,如果排序号前10为置顶,置顶排序号和时间排序")
	private Integer orderid;
	/**
	 *创建者
	 */
	@ApiModelProperty(value = "创建者")
	private Long creator;
	/**
	 *创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	private Date createDate;
	/**
	 *更新者
	 */
	@ApiModelProperty(value = "更新者")
	private Long updater;
	/**
	 *更新时间
	 */
	@ApiModelProperty(value = "更新时间")
	private Date updateDate;

	/**
	 * 读状态
	 *0 未读  1 已读
	 */
	@ApiModelProperty(value = "0 未读  1 已读")
	private Boolean readFlag;

	private String userId;
	private String deptId;
	private String noticeId;
	private String deptCode;
	private int unHandleMsgCnt;

	/**
	 * 获取主键值
	 *
	 * @return 主键值
	 */
	@Override
	protected Serializable pkVal() {
		return this.id;
	}
}